package com.cw.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cw.common.api.ResultObject;
import com.cw.dto.*;
import com.cw.entity.SysUser;
import org.apache.ibatis.annotations.Param;

import com.github.pagehelper.*;
import java.util.List;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author smq
 * @since 2021-04-28
 */
public interface ISysUserService extends IService<SysUser> {

    /**
     * 获取用户通过用户主键或者登录名
     * @param userId 用户主键
     * @param userName 用户登录账号
     * @author ly
     * @date 2021/4/28 11:02
     * @return java.util.List<com.cw.entity.SysUser>
     */
    List<SysUser> getSysUser(String userId,String userName);

    /**
     * 修改用户表里的角色Code为NULL
     * @param userId 用户主键
     * @author ly
     * @date 2020/10/21 14:43
     */
    void updateSysUserSetRoleCodeNull(String userId);

    /**
     * 插入用户
     * @param sysUser 用户
     * @author ly
     * @date 2021/4/28 11:48
     * @return com.cw.common.api.ResultObject
     */
    ResultObject insertSysUser(SysUser sysUser);

    /**
     * 修改用户表里的角色
     * @param sysUser 用户信息
     * @author ly
     * @date 2020/10/21 14:43
     */
    void updateSysUserSetRoleCode(SysUser sysUser);

    /**
     * 根据菜单Id查询拥有此权限的用户
     * @param menuId
     * @return
     */
    List<SysUser> getUsersByMenuId(@Param("menuId") String menuId);

    /**
     *修改
     * @param
     * @return
     */
    boolean updateSysUser(SysUser sysUser);

    /**
     * 查询所有用户信息
     * @param condition
     * @return
     */
    PageInfo<SysUser> sysUserSelectList(SystemLogCondition condition);

    /**
     * 根据前台传输的条件进行查询
     * @param condition
     * @param sysUser
     * @return
     */
    public ResultObject selectSysUserByCondition(SystemLogCondition condition,SysUser sysUser);

}
